#pragma once

#include <base.h>

/* 非WMO */
/*  内存屏障的汇编实现 */
/* NOP 有可能不是一个周期 */
#define NOP()		asm volatile("nop")
/* #define NOP()		asm volatile("isb sy" : : : "memory") */
/* #define NOP()		asm volatile("add x1, x1, #1" : : : "memory", "x0") */
/* 使用isb而非yield */
/* #define PAUSE()		asm volatile("isb sy") */
/* FIXME: 这种等待方式会出让*/
#define PAUSE()		asm volatile("yield")
#define CPU_RELAX()	PAUSE()
